home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2005 October
/
PCWOCT05.iso
/
Software
/
FromTheMag
/
XAMPP 1.4.14
/
xampp-win32-1.4.14-installer.exe
/
xampp
/
php
/
pear
/
Math
/
TrigOp.php
< prev
Wrap
PHP Script
|
2004-03-24
|
6KB
|
207 lines
<?php
//
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2002 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Jesus M. Castagnetto <jmcastagnetto@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: TrigOp.php,v 1.1 2002/11/24 07:16:24 jmcastagnetto Exp $
//
require_once 'PEAR.php';
/**
* Static class implementing supplementary trigonometric functions
*
* Example of use:
*
* $cot = Math_TrigOp::cot(0.3445);
* $x = Math_TrigOp::acsch(-0.231);
*
* Originally this class was part of NumPHP (Numeric PHP package)
*
* @author Jesus M. Castagnetto <jmcastagnetto@php.net>
* @version 1.0
* @access public
* @package Math_TrigOp
*/
class Math_TrigOp {/*{{{*/
// supplementary trigonometric functions
/**
* Calculates the secant of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function sec($x) {/*{{{*/
$x = floatval($x);
$cos = cos($x);
if ($cos == 0.0) {
return PEAR::raiseError('Undefined operation, cosine of parameter is zero');
} else {
return 1/$cos;
}
}/*}}}*/
/**
* Calculates the cosecant of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function csc($x) {/*{{{*/
$x = floatval($x);
$sin = sin($x);
if ($sin == 0.0) {
return PEAR::raiseError('Undefined operation, sine of parameter is zero');
} else {
return 1/$sin;
}
}/*}}}*/
/**
* Calculates the cotangent of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function cot($x) {/*{{{*/
$x = floatval($x);
$tan = tan($x);
if ($tan == 0.0) {
return PEAR::raiseError('Undefined operation, tangent of parameter is zero');
} else {
return 1/$tan;
}
}/*}}}*/
// Hyperbolic functions
/**
* Calculates the hyperbolic secant of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function sech ($x) {/*{{{*/
$x = floatval($x);
$cosh = cosh($x);
if ($cosh == 0.0) {
return PEAR::raiseError('Undefined operation, hyperbolic cosine of parameter is zero');
} else {
return 1/$cosh;
}
}/*}}}*/
/**
* Calculates the hyperbolic cosecant of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function csch ($x) {/*{{{*/
$x = floatval($x);
$sinh = sinh($x);
if ($sinh == 0.0) {
return PEAR::raiseError('Undefined operation, hyperbolic sine of parameter is zero');
} else {
return 1/$sinh;
}
}/*}}}*/
/**
* Calculates the hyperbolic cotangent of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function coth ($x) {/*{{{*/
$x = floatval($x);
$tanh = tanh($x);
if ($tanh == 0.0) {
return PEAR::raiseError('Undefined operation, hyperbolic tangent of parameter is zero');
} else {
return 1/$tanh;
}
}/*}}}*/
// Inverse hyperbolic functions
/**
* Calculates the inverse hyperbolic secant of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function asech ($x) {/*{{{*/
$x = floatval($x);
if ($x == 0.0) {
return PEAR::raiseError('Undefined operation, parameter is zero');
} else {
return log((1 + sqrt(1 - $x*$x)) / $x);
}
}/*}}}*/
/**
* Calculates the inverse hyperbolic cosecant of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function acsch ($x) {/*{{{*/
$x = floatval($x);
if ($x == 0.0) {
return PEAR::raiseError('Undefined operation, parameter is zero');
} elseif ($x < 0) {
return PEAR::raiseError('Undefined operation, parameter is negative');
} else {
return log((1 + sqrt(1 + $x*$x)) / $x);
}
}/*}}}*/
/**
* Calculates the inverse hyperbolic cotangent of the parameter
*
* @param float $x
* @returns mixed A floating point on success, PEAR_Error object otherwise
* @access public
*/
function acoth ($x) {/*{{{*/
$x = floatval($x);
if ($x == 1.0) {
return PEAR::raiseError('Undefined operation, parameter is 1.0');
} else {
$rat = ($x + 1)/($x - 1);
if ($rat < 0) {
return PEAR::raiseError('Undefined operation, (x+1)/(x-1) is negative');
} else {
return 0.5*log($rat);
}
}
}/*}}}*/
}/*}}}*/
?>